<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <!-- 1、迷路的机器人
设想有个机器人坐在一个网格的左上角，网格 r 行 c 列。机器人只能向下或向右移动，
但不能走到一些被禁止的网格（有障碍物）。设计一种算法，寻找机器人从左上角移动到右下角的路径。
网格中的障碍物和空位置分别用 1 和 0 来表示。
返回一条可行的路径，路径由经过的网格的行号和列号组成。左上角为 0 行 0 列。如果没有可行的路径，返回空数组。
示例
输入:
[
  [0,0,0],
  [0,1,0],
  [0,0,0]
]
输出: [[0,0],[0,1],[0,2],[1,2],[2,2]]
解释: 
输入中标粗的位置即为输出表示的路径，即
0行0列（左上角） -> 0行1列 -> 0行2列 -> 1行2列 -> 2行2列（右下角）
 -->
</head>
<body>
  <script>
    var pathWithObstacles = function(obstacleGrid) {
    let res=[]
   let len1=obstacleGrid.length,len2=obstacleGrid[0].length
    function find(i,j,item){
    if(i>=len1||j>=len2){  //设置递归条件
        if(i==len1&&j==len2-1){  //说明有路径到达终点，获取结果
        res=item.concat(); 
       }
        return ;
    }
    if(obstacleGrid[i][j]==0){ //判断此位置是否能够通过
        obstacleGrid[i][j]=-1 //标识访问过的位置，只要不为0都行
      item.push([i,j]);  //记录路径
      find(i+1,j,item);   //向下访问
      find(i,j+1,item);    //向右访问
      item.pop();      //回溯
    }s
 }
 find(0,0,[]);
 return res;

};
    console.log(pathWithObstacles([[0, 0, 0], [0, 1, 0], [0, 0, 0]]))
  </script>
</body>
</html>